import moment from 'moment';

/**
 * 格式化日期
 * @param value 日期字符串
 * @param fmt 格式化字符串
 * @returns
 */
export const formatDate = (value?: string | Date, fmt?: string) => {
    if (!value) {
        return moment().format(fmt || 'YYYY-MM-DD');
    }
    return moment(value).format(fmt || 'YYYY/MM/DD HH:mm:ss');
};

/**
 * 日期减法
 * @param value 时间长度 1 7 30
 * @param value 时间类型  day  month  year
 * @param fmt 格式化字符串
 * @returns
 */
export const formatDateSubtract = (value: number, type?: string, fmt?: string) => {
    return moment()
        .subtract(value, type || 'day')
        .format(fmt || 'YYYY-MM-DD');
};

/**
 * 检查目标时间是否已过期（是否早于当前时间）
 * @param {string} timeStr - 目标时间字符串，格式如 '2025-09-25 12:11:11'
 * @returns {boolean} 若已过期则返回true，否则返回false；如果时间格式无效则返回null
 */

export const isExpired = (dateStr:string)=> {
    // 检查Moment是否加载
    if (typeof moment === 'undefined') {
        console.error('请先引入Moment.js库');
        return null;
    }

    // 解析目标日期
    const targetDate = moment(dateStr);
    
    // 验证日期有效性
    if (!targetDate.isValid()) {
        console.error('无效的日期格式，请使用正确的日期时间格式');
        return null;
    }

    // 获取当前时间（精确到时分秒）
    const now = moment();

    // 精确比较两个时间（包括时分秒）
    return targetDate.isBefore(now);
}